function request(url, method = 'GET', data = null) {
    return new Promise((resolve, reject) => {
        $.ajax({
            url: url,
            method: method,
            dataType: "json",
            data: data,
            success: resolve,
            error: reject
        });
    });
}

function jqeruytoast(text) {
    $.toast({
        text: text,//消息提示框的内容。
        // heading: heading,//消息提示框的标题。
        // icon: icon,//消息提示框的图标样式。
        // showHideTransition: 'fade',//消息提示框的动画效果。可取值：plain，fade，slide。
        allowToastClose: false,//是否显示关闭按钮。(true 显示，false 不显示)
        // hideAfter: hideAfter,//设置为false则消息提示框不自动关闭.设置为一个数值则在指定的毫秒之后自动关闭消息提框
        // stack: 1,//消息栈。同时允许的提示框数量
        position: 'mid-center',//消息提示框的位置：bottom-left, bottom-right,bottom-center,top-left,top-right,top-center,mid-center。
        textAlign: 'center',//文本对齐：left, right, center。
        loader: false,//是否显示加载条
        //bgColor: '#FF1356',//背景颜色。
        //textColor: '#eee',//文字颜色。
        // loaderBg: '#ffffff',//加载条的背景颜色。
    });
}


/*
    复制文本内容
*/
function copyText(text) {
    const input = document.createElement('input');
    document.body.appendChild(input);
    input.setAttribute('value', text);
    input.select();
    if (document.execCommand('copy')) {
        document.execCommand('copy');
        jqeruytoast('复制成功');
    }
}


let downLoadUrl = ""
let jindu = 0
let viDown=true
/*
下载
 */
function downloadFileWithProgress(url, fileName) {
    url = url.replace('http://', 'https://')
    if (jindu < 100 && downLoadUrl == url){
        $('.jinduopenbutton').click()
        return
    }
    downLoadUrl = url
    $('.jinduopen-progress').css('width', '0%')
    const xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    setTimeout(function (){
        if(viDown){
            $('.jinduopenbutton').click()
        }
        viDown=true
    },300)

    // 监听下载进度
    xhr.onprogress = function (e) {
        if (e.lengthComputable && downLoadUrl == e.target.responseURL) {
            const percentComplete = (e.loaded / e.total) * 100;
            jindu = percentComplete.toFixed(2)
            $('.jinduopen-progress-show').text(jindu + '%')
            $('.jinduopen-progress').css('width', jindu + '%')
            // 可以在这里更新UI来显示进度
        } else {
            xhr.abort();
        }
    };

    xhr.onload = function () {
        if (this.status === 200) {
            // 下载成功，处理文件
            const blob = this.response;
            const a = document.createElement('a');
            document.body.appendChild(a);
            a.style.display = 'none';

            const url = window.URL.createObjectURL(blob);
            a.href = url;
            a.download = fileName;
            a.click();

            document.body.removeChild(a);
            window.URL.revokeObjectURL(url);
        } else {
            viDown=false
            // 下载失败，显示错误信息
            alert('下载失败，请复制链接自行下载');
            throw new Error('下载失败')
        }
    };

    xhr.onerror = function () {
        viDown=false
        // 网络错误或请求不被允许
        console.error('Network error or request not allowed.');
        alert('下载失败: 网络错误或请求不被允许。');
        throw new Error('下载失败')
    };

    // 发送请求
    xhr.send();
}


